Daily Assignment 21

Author

Avery Eastman

library(dataRetrieval)
library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(tsibble)
Registered S3 method overwritten by 'tsibble':
  method               from 
  as_tibble.grouped_df dplyr

Attaching package: 'tsibble'
The following objects are masked from 'package:base':

    intersect, setdiff, union
# Example: Cache la Poudre River at Mouth (USGS site 06752260)
poudre_flow <- readNWISdv(siteNumber = "06752260",    # Download data from USGS for site 06752260
                          parameterCd = "00060",      # Parameter code 00060 = discharge in cfs)
                          startDate = "2013-01-01",   # Set the start date
                          endDate = "2023-12-31") |>  # Set the end date
  renameNWISColumns() |>                              # Rename columns to standard names (e.g., "Flow", "Date")
  mutate(Date = yearmonth(Date)) |>                   # Convert daily Date values into a year-month format (e.g., "2023 Jan")
  group_by(Date) |>                                   # Group the data by the new monthly Date
  summarise(Flow = mean(Flow))                       # Calculate the average daily flow for each month
GET:https://waterservices.usgs.gov/nwis/dv/?site=06752260&format=waterml%2C1.1&ParameterCd=00060&StatCd=00003&startDT=2013-01-01&endDT=2023-12-31

Covert to tsibble

Use as_tsibble() to convert the data.frame into a tsibble object. This will allow you to use the feast functions for time series analysis

poudre_tbl <- as_tsibble(poudre_flow)
Using `Date` as index variable.
head(poudre_tbl)
# A tsibble: 6 x 2 [1M]
      Date   Flow
     <mth>  <dbl>
1 2013 Jan  18.1 
2 2013 Feb  18.0 
3 2013 Mar   8.21
4 2013 Apr   5.94
5 2013 May 333.  
6 2013 Jun 300.  

Plotting the time series

Use ggplot to plot the time series data. Animate this plot with plotly

library(ggplot2)
library(plotly)

Attaching package: 'plotly'
The following object is masked from 'package:ggplot2':

    last_plot
The following object is masked from 'package:stats':

    filter
The following object is masked from 'package:graphics':

    layout
poudre_plot <- ggplot(poudre_tbl, aes(x = Date, y = Flow)) +
  geom_line(color = "steelblue") +
  labs(title = "Monthly Streamflow of Cache la Poudre River",
       x = "Date", y = "Average Monthly Flow") +
  theme_minimal()

ggplotly(poudre_plot)

Subseries

Describe what you see in the plot. How are “seasons” defined in this plot? What do you think the “subseries” represent?

The plot shows a seasonal pattern in streamflow for the Cache la Poudre River. You can see that streamflow peaks in May-June, which can be classified as late spring and early summer. This is most likely due to snow melt as the weather gets warmer in these months. You can also see that streamflow is lowest in November-Febuary, which can be classified as late fall and winter.